package com.easylinkin.linkappapi.premeeting.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.easylinkin.linkappapi.premeeting.entity.RailPreMeeting;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingQueryVo;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingVo;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingCalendarVo;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingCalendarQueryVo;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingDateGridVo;
import com.easylinkin.linkappapi.premeeting.vo.RailPreMeetingGridSwitchVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 班前会表 Mapper 接口
 * </p>
 *
 * @author zl
 * @since 2025-06-30
 */
public interface RailPreMeetingMapper extends BaseMapper<RailPreMeeting> {

    IPage<RailPreMeetingVo> queryListByPage(Page page, @Param("queryVo") RailPreMeetingQueryVo queryVo);

    RailPreMeetingVo findById(String id);

    /**
     * 获取班前会月度数据
     */
    List<RailPreMeetingDateGridVo> getCalendarData(@Param("queryVo") RailPreMeetingCalendarQueryVo queryVo);

    /**
     * 获取网格点切换数据（显示所有网格点及其数据状态）
     * @param tenantId 项目ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return 网格点列表及数据状态
     */
    List<RailPreMeetingGridSwitchVo> getGridSwitchData(@Param("tenantId") String tenantId,
                                                       @Param("startTime") Date startTime,
                                                       @Param("endTime") Date endTime);
}
